/*----------------------------------------------------------------------------------------
*
*  Copyright 2019, Gao Hai Hui, <fromzeropoint@126.com>.  All rights reserved.
*  https://gitee.com/helloworldghh/xoskit.git
*  Use of this source code is governed by a MIT license
*  that can be found in the License file.
*
----------------------------------------------------------------------------------------*/
#ifndef __E30F98F1_4764_490F_8110_90FD5901B764__
#define __E30F98F1_4764_490F_8110_90FD5901B764__

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// 
// mac for use big file
// 
#ifndef __USE_FILE_OFFSET64
#define __USE_FILE_OFFSET64
#endif

#ifndef __USE_LARGEFILE64
#define __USE_LARGEFILE64
#endif

#ifndef _LARGEFILE64_SOURCE
#define _LARGEFILE64_SOURCE
#endif

// 
// linux32 headers
// 
#include <unistd.h>  
#include <dirent.h> 
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/select.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <stdarg.h>
#include <pthread.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <errno.h>
#include <dlfcn.h> // dlopen、dlsym、dlerror、dlclose的头文件
#include <iconv.h>
#include <signal.h>
#include <utime.h>

// 
// stl headers
// 
#include <iostream>
#include <list>
#include <vector>
#include <map>
#include <sstream>
#include <cassert>

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef XOS_EXPORT
#define XOS_EXPORT extern "C" __attribute__((visibility("default")))
#endif

#ifndef XOS_API_CDECL
#define XOS_API_CDECL
#endif

#ifndef XOS_API
#define XOS_API
#endif

// Apple动态库初始化函数必须导出
#ifdef __APPLE__
XOS_EXPORT void _init( void );
XOS_EXPORT void _fini( void );
#endif

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

typedef struct _WSABUF
{
    uint32_t len;   /* the length of the buffer */
    char * buf;     /* the pointer to the buffer */
} WSABUF;

#endif // __E30F98F1_4764_490F_8110_90FD5901B764__
